import {
  pickedFaceData,
  pickedLineData,
  pickedModelData,
  pickedVertexData,
} from '@amcax/base';
import { pickedProductData } from '@app-base/common/components/pick-input/types';
import { ConstraintType } from '../cmd-constrain/type';

export interface CopyConstraint {
  id: string;
  title: string;
  used: boolean;
  reuse: boolean;
  type: ConstraintType;
  target: pickedModelData | pickedLineData | pickedFaceData | pickedVertexData;
  reverse: boolean;
  val?: number;
  vecSense?: number;
}

export type CopyConstraintRefType = Omit<CopyConstraint, 'target'> & {
  target: string;
};

export type FormData = {
  select: pickedProductData;
  constraints: CopyConstraint[];
};
